package lesson09;

import java.util.Scanner;

public class Test03 {
    public static void main(String[] args) {
        // 字符串类
        String s1 = "hello java， i love lovo";
        String s2 = "hello java";
        String s3 = new String("hello java");
        System.out.println(s1.equals(s2));
        System.out.println(s1 == s2);
        System.out.println(s1 == s3);
        System.out.println(s1.equals(s3));

        // length方法获取字符串的长度
        System.out.println(s1.length());
        // charAt获取指定下标的字符
        System.out.println(s1.charAt(4));
        // 从左开始获取指定字符串在原字符串第一次出现的位置，如果找不到则返回-1
        System.out.println(s1.indexOf("o"));
        // 从右开始获取指定字符串在原字符串第一次出现的位置，如果找不到则返回-1
        System.out.println(s1.lastIndexOf("o"));
        // 指定下标截取后面的字符串
        System.out.println(s1.substring(11));
        // 指定起始和结束位置截取部分字符串（前闭后开）
        System.out.println(s1.substring(13,17));
        // 将指定字符串用相应的字符进行分割，返回分割后的字符串数组
        String [] ss = s1.split(" ");
        for(int i = 0;i < ss.length;i++){
            System.out.println(ss[i]);
        }

        // 给定一个字符串：asdfjlkafasdgjafjoiaisdfafojaisdjfafojiasdfafasdf
        // 请输出该字符串中一共有多少个"af"
        String str = "afasdfjlkafasdgjafjoiaisdfafojaisdjfafojiasdfafasdfaf";
        int cnt = 0;
        while(true){
            int index = str.indexOf("af");
            if(index >= 0){
                cnt++;
                str = str.substring(index + 2);
            }else{
                break;
            }
        }
        System.out.println(cnt);
        String str1 = "a" + "b" + "c" + "d" + "e";
        // StringBuffer和StringBuilder都是可变字符串类，它们提供的方法完全一样
        // 区别是StringBuffer线程安全但是效率不高，StringBuilder线程不安全但是效率高
        // 从执行效率上来看，三个字符串类排序：StringBuilder > StringBuffer > String
        StringBuffer sb = new StringBuffer();
        sb.append("a");
        sb.append("b");
        sb.append("c");
        sb.append("d");
        sb.append("e");
        System.out.println(sb);

        StringBuilder sb1 = new StringBuilder();
        sb1.append("a");
        sb1.append("b");
        sb1.append("c");
        sb1.append("d");
        sb1.append("e");
        System.out.println(sb1);

        // 练习：输入一个字符串，返回一个反序的字符串
        Scanner sc = new Scanner(System.in);
        String str2 = sc.next();
        StringBuffer sb2 = new StringBuffer(str2);
        sb2.reverse();
        System.out.println(sb2);


    }
}
